pass message as first argument
refactor interface, add ability to request user input