Abstract Factory and Observer patterns fully implemented. Still needs Template Method pattern.