This is still a work in progress. Let me know what you think so far.