add models and UI
a lot of stuff