public static function constructFromArray($props) {
		if (!is_array($props)) {
			$props = array('type' => $props);
		}

		$defaults = array_fill_keys(self::$properties, null);
		$props    = array_merge($defaults, $props);
		extract($props);

		return new Accidental($type, $size, $parentheses, $bracket, $editorial, $courtesy);

	}