add: then, orElse