public function load_value( $slug ) {
		$slug     = strtolower( unpapify( $slug ) );
		$property = $this->property( $slug );

		// If no property type is found, just return null.
		if ( ! papi_is_property( $property ) ) {
			return;
		}

		// Get raw property meta value.
		$value = $this->get_property_meta_value( $slug );

		// Prepare load value, when you have `overwrite => true`
		// this value will not exist in the database and that's
		// why we need to prepare (change) the value.
		$value = $this->prepare_load_value( $property, $value );

		// Bail if value is empty and option value is empty.
		if ( papi_is_empty( $value ) ) {
			if ( ! papi_is_empty( $property->get_option( 'value' ) ) ) {
				return $property->get_option( 'value' );
			}

			return;
		}

		// A property need to know about the store.
		$this->property( $slug )->set_store( $this );

		// Run load value method right after the value has been loaded from the database.
		$value = $property->load_value( $value, $slug, $this->id );
		$value = papi_filter_load_value(
			$property->type,
			$value,
			$slug,
			$this->id,
			papi_get_meta_type()
		);

		// Remove empty values from arrays.
		if ( is_array( $value ) ) {
			foreach ( $value as $index => $val ) {
				if ( papi_is_empty( $val ) ) {
					unset( $value[$index] );
				}
			}
		}

		return $value;
	}