Added API, admin project, and a bunch of refactoring.