Factory design implemented.