towards recursion object:general