added file for factory design pattern