added interactive mode
added show/hide cursor
added readline()