dang it would be nice if there was a when.invoke for this