Replacing the copy method with clone and making defensive copies in the constructors to avoid weired problems