Better text input & cleaned observer mess