added authentication, registration (via browser), restructured api, database setup