Refactored BoardState and GameEngine partially