introduce CB_Algo interface