move to generalized crud