recursively extending of objects