add ICloneable protocol, implement for persistent collection types, add
clone function