refactored code

followed some telerik tutorials and best practices to restructure app in
a more MVVM layout