That's a simultaneously fun and annoying problem to have! :) I believe that one of the missing links here is this:
override
virtual
TADA