DRY programming stands for "Don't Repeat Yourself." In software development this is extremely important. Consolidating logic into reusable methods, modules, widgets, etc... makes for less code, which in turn is more maintainable, flexible, and organized. If you find yourself duplicating similar logic to perform another version of the same thing, see if you can instead combine the logic into one adaptable method. In the end this will make some of your coding just slightly more complex – but the benefits of keeping it DRY payback a hundred fold later when you need to globally change how your application behaves. Of course this can be taken to an unreasonable extreme so use your best judgement and don't let the desire to consolidate everything hold you back.