Reset

Not sure exactly where I left off so I am resetting the codebase.
I also have a couple of new ideas on how to refactor the types, etc.
See if they end up working out.