oops, forgot yield is not return
fixed some comments