clean up api for "then" behavior nesting