Remove unnecessary generic functions.

I no understand protocols