implement when1 and whens in terms of SE