library for building command line interfaces