fixed the clone implementations