use readline crate