+ /**
+ * Creates a new instance from the specified elements.
+ *
+ * This method is provided for derived classes to specify how a new
+ * instance should be created when constructor semantics have changed.
+ *
+ * @param array $elements Elements.
+ *
+ * @return static
+ */
+ protected function createFrom(array $elements)
+ {
+ return new static($elements);
+ }
+