remove nested code, rename callback type, en/disable widgets, handle
failure