Add textfield widget and abstract between core and app