configured to accept command line arguments