add clone.self()
add acyclic sub-module
support cloning cyclic data structures