more refactoring of input control classes