Refactor ProgramCallbacks into many interfaces.