no yield needed before returnValue