* clientside refactoring