Rewrite a large portion of the api
Cleanup
.gitignore cleanup