Finished implemented pattern AbstractFactory