move the generation code for return from inline to a more appropiate place