add client and command line interface framework