I hate the clone terminology of java... confusing (with Clonable interface and all), and it's `safeCopy` is consistent with other similar method we have in different construct in es