tryint to generalize