Change copy to snapshot and override toString