refactored on/off methods