added text input/output