re-factoring client library builder