separate io modules
separate modules for command line interaction