wishlist: add an option for run to return without OK. or does it misses something at: case CAT_RETURN_STATE_DATA_NEXT: case CAT_RETURN_STATE_NEXT: break; ?