refactoring to mvvm pattern

oh and the player is actually functionnal now.  *celebration*