[RFC] started refactor for 2.0

Here is the start of my idea for a 2.0 refactor (ref #20)

Let me know what you think.