adding back the general case