support circular structures by mutable object