- initialization tested
- using julia's deepcopy instead of explicit copy