Redesign

** not ready for merging **

@carlwood - I'm starting a pull request so we can discuss changes etc.