add generalized form