implement Serializable; encapsulate game state