[Update]: added ioc container ninjec, and cleaned code with resharper.