category multimethod
fix definition of first