reduce garbage
simplify if