finished application - before refactoring