Closes #82 Add ViewModel without multithreading (concurrency) bugs