https://medium.com/@scope1community/the-art-of-creational-design-patterns-understanding-the-abstract-factory-method-27bc7f5d3271