restructure the app, add models