Added mvvm pattern