Changing Client to use a framework for easy extensibility