Updating AbstractClient to work with controller