command line interface implemented