omit units if empty
fix deep recursion