Implement pluggable structure for clients, config, exceptions and cli