did some generalization