Added a lot more documentation, the API is beginning to solidify