implemented copyWithZone
improved description method