mvvm mvp develop (ready for review)