Have one callback type per status type - more intuitive API surface