made application useable by implementing view transitions

Introduced MainController and AbstractGenericController for this