removed clone method since it has serious flaws.