clone() now creates copies of sub-objects in addition to the main object