Strategy Pattern and Factory Patttern