General refactorings and stuff

- Added some more documentation
- Added some more convenience overloads

Core code remains the same