moving client to separate package
refactoring
refactoring to support aggregator