All public static arrows should have their pointer at the origin and their maximum
x-length should be 1, so that scaling the arrow across all types becomes consistent.
from http://javatechniques.com/blog/faster-deep-copies-of-java-objects/, see also https://stackoverflow.com/a/64066
Utility for making deep copies (vs.