Refactored UIInput* hierarchy to support getValueType()