Finally adopted MVVM pattern in architecture