Wrap calls to 'do' and 'check' steps in Future->wrap() so non-Future returns can be made; neatens some of the code