I know we have duplicated code there. However, I will keep them there for a while. I would like to see what are those common elements shared by all modes, and extract them to a base class or something later. Sometimes by doing OO design too early, it would be over engineering or modeling it wrong. A little deferred refactorying would be helpful.