Trying out my changes to the api.
halfway there, but not working
a few improvements, more comments
jfc finally got the syntax, that was really annoying
Merge branch 'master' into refactor