switch to cxxopts