refactor to pull silence check into cond