principios oo interfaces
principios oo interfaces
design patterns: factory, abstract factory, observer