Now with multimethod to get more sane dispatch