Add ms058
Add AbstractFactoryPattern, fix mistakes in ms055