Start to separate key functions and use the same terminology as in Term::ReadLine::Perl