refactor @conditional