1. Make method/class small following SRP 2. Reduce boilerplate codes 3. Consider using anonymous class instead of one time used nested class