NEW: State design pattern and some basic Log4j