Refactored according to Java Philosophy.