factored game rules for testing purposes into protected methods