Added 'AbstractFactory' pattern