Refactored WcampClient to abstract and extracted inner classes, testing should be easier