building tests, extensive refactoring
a simple up run is passing