added tests, started working on ViewModel