refactoring, docblocks, etc
coding standards changes
logger can write to given stream
unit tests