moved copy recursive to util class, added comments