Factory and Factory Method

some issues has been fixed