isn't if_zero_else better there ?