moved state logic from controllers into game service