Factory Design Pattern - Low Level Design