reorganize interfaces and refactor Game Class