using state pattern for game board