api overhaul. DO NOT MERGE

Major restructuring of how the API works internally.

Do not merge yet. I've left a lot of the methods blank. For now, let me know what you think of the new way of specifying API endpoints.
Can we remove these? Or should these be filled in in the future.