implements a curses interface