added different loaders, and class generator using differnet strategies