Changed the initialize funcion to create a copy tree if the supplied argument is not nil