I don't understand the purpose of the hash-based constructor. In 1.8.7, this would result in an indeterminate order.