Practicing design patterns in java.