Code Repo: * https://github.com/rahible/code-challenge.git Notes: If you search through the commit history you'll get an idea of the way that I code and commit. For example, I had originally thought Strategy / State pattern, but quickly realize I was going down the wrong path and moved to the Composite pattern. Execution: mvn test * Per the requirements documentation, I provided only unit tests. Build Requirements: * Maven 3.0.5 * JDK 1.7.0 Developed using JBoss Developer Studio 7.1.1.GA Assumptions: * I assumed that an organization is flat where departments cannot have other departments. This was due to time constraints. However, this could easily be enhanced by implementing the Composite design pattern as I did for the Employees. * I assumed that a department can only have one head or manager. I don't recall working in an organization in my past where a department was headed by several managers. * I assumed that the Expense Allocation was static to the employee implementation. For this exercise making them static simplifies the creation of the unit test facets. However, further refactoring to allow the values to be set on object creation would be a more ideal approach.