reduce if nest
Add TODO