The first thing you do when you design software is leverage what is reusuable from other programs and systems.