turned the static clone method into an extension method