most of the backend functionality, removed the database