Design - mvvm