More Restructuring

- moved type map into options to make it more obvious to users
- improved options code
- added documentation for options
- exposed types in namespace