add coeff abstrction