refactoring model & client - add hydrator
update tests