Refactoring: Design Patterns.
Added log4j.