Concepts from the "Effective Java" book