separated library and command line helper