v1.3, refactoring to move higher level code to client