Made with MVVM pattern