recursive object render