/**
	 * Setup the module's functionality.
	 *
	 * Loads the two-factor module's unprivileged functionality.
	 *
	 * @since 1.2.0
	 *
	 * @return void
	 */
	function run( $core ) {

		$this->_settings = $this->_helper->get_settings();

		if ( is_multisite() ) {
			$this->_helper->set_core( $core );
		}

		add_action( 'wp_login',                 array( $this, 'wp_login' ), 10, 2 );
		add_action( 'login_form_validate_2fa',  array( $this, 'login_form_validate_2fa' ) );
		add_action( 'login_form_backup_2fa',    array( $this, 'backup_2fa' ) );
		add_action( 'show_user_profile',        array( $this, 'user_two_factor_options' ) );
		add_action( 'edit_user_profile',        array( $this, 'user_two_factor_options' ) );
		add_action( 'personal_options_update',  array( $this, 'user_two_factor_options_update' ) );
		add_action( 'edit_user_profile_update', array( $this, 'user_two_factor_options_update' ) );

		add_filter( 'itsec_logger_modules', array( $this, 'itsec_logger_modules' ) );
		add_filter( 'itsec_sync_modules', array( $this, 'itsec_sync_modules' ) ); //register sync modules

	}
	/**
	 * Setup the module's administrative functionality
	 *
	 * Loads the two-factor module's priviledged functionality including
	 * settings fields.
	 *
	 * @since 1.2.0
	 *
	 * @param ITSEC_Core $core The core plugin instance
	 *
	 * @return void
	 */
	function run( $core ) {

		$this->_settings = $this->_helper->get_settings();
		$this->_core     = $core;

		if ( is_multisite() ) {
			$this->_helper->set_core( $this->_core );
		}

		add_action( 'itsec_admin_init',           array( $this, 'itsec_admin_init' ) ); //initialize admin area
		add_action( 'itsec_add_admin_meta_boxes', array( $this, 'itsec_add_admin_meta_boxes' ) ); //add meta boxes to admin page

		add_filter( 'itsec_add_dashboard_status', array( $this, 'itsec_add_dashboard_status' ) ); //add information for plugin status
		add_filter( 'itsec_tracking_vars',        array( $this, 'itsec_tracking_vars' ) );

		//manually save options on multisite
		if ( is_multisite() ) {
			add_action( 'itsec_admin_init', array( $this, 'itsec_admin_init_multisite' ) ); //save multisite options
		}

	}