public function create( $args = array(), $definitions = null ) {
		if ( is_null( $definitions ) ) {
			$definitions = $this->_definitions;
		}

		$callbacks = array();
		$generated_args = $this->_generateArgs( $args, $definitions, $callbacks );
		if ( is_wp_error( $generated_args ) ) {
			return $generated_args;
		}

		$created = $this->_createObject( $generated_args );
		if ( ! $created || is_wp_error( $created ) ) {
			return $created;
		}

		if ( ! empty( $callbacks ) ) {
			$updated_fields = $this->_applyCallbacks( $callbacks, $created );
			$save_result = $this->_updateObject( $created, $updated_fields );
			if ( ! $save_result || is_wp_error( $save_result ) ) {
				return $save_result;
			}
		}

		if ( ! empty( $created ) && !is_wp_error( $created ) ) {
			$this->_objects[] = $created;
		}

		return $created;
	}