move maybeCallback code into list & hash. It breaks for the arguments case