Implementando factory.pas