use MooX::HandlesVia instead of manually generating subs