add Autofac, and more classes, fill IReasoning interface