Total Refactor

This breaks BC big time, so further work on the U2 side will be necessary. Better no composer update for now.
Lets refactor this so that each type has a read method. They should look up a method name based on the type. This allows new types to easily be added.