Finished API for full functionality. May need to add some more later.
Merge branch 'api'