NEW: implementation of Abstract Factory design pattern
DOC: added documentation