cleaning the api, types, and a better interface for problems
everything got namespaced