Implementing NSCopying protocol for the classes & example
Cleaning up Code so that NSCopying is now fully utilised