Add getInstance methods + InputText
Changed class to interface. This is for preserving compatibility
Refactored Input classes