client example
refactoring
documentation