Working text input (but need to review event edges)