Total Refactor

This breaks BC big time, so further work on the U2 side will be necessary. Better no composer update for now.
same thing here with a dynamic method lookup for types. then people can add new types easily by just extending this class.