implement routes, models and auth