generalize decoration to all intermediate objects