Separate operation and repair from recipe logic