add general case