Complate Factory Pattern & Modification