First stage of refactoring to better suit M-V-VM