State::OnStart(), OnStop(), OnPause(), and OnResume() are now protected to avoid calling them directly by mistake