*nitpick* Can we factor out the setReturn and reportReturn lines into a separate helper function? We use them so often.