public static function options( $type, $options ) {

		$options = (array) $options;

		if ( ! is_object( $options ) && isset( $options['options'] ) ) {
			$options_temp = $options['options'];

			unset( $options['options'] );

			$options = array_merge( $options_temp, $options );

			$override = array(
				'class',
			);

			foreach ( $override as $check ) {
				if ( isset( $options_temp[ $check ] ) ) {
					$options[ $check ] = $options_temp[ $check ];
				}
			}
		}

		$defaults = self::options_setup( $type, $options );

		$core_defaults = array(
			'id'          => 0,
			'label'       => '',
			'description' => '',
			'help'        => '',
			'default'     => null,
			'attributes'  => array(),
			'class'       => '',
			'grouped'     => 0,
		);

		$defaults = array_merge( $core_defaults, $defaults );

		foreach ( $defaults as $option => $settings ) {
			$default = $settings;

			if ( is_array( $settings ) && isset( $settings['default'] ) ) {
				$default = $settings['default'];
			}

			if ( ! isset( $options[ $option ] ) ) {
				$options[ $option ] = $default;
			}
		}

		return $options;
	}