some additional refactoring's done
actual play part is not finished yet