Moved success and failure callbacks into ProgramManager