refactoring to enhance testability
refactoring to enhance testability
refactoring: keep models clean of request
more docs
work on test suite