added all tasks and fixed up deep copy with recursion