Ioc

When complete, will resolves issue #3

* [x] remove ContainerFactory class
* [ ] introduce an IoC container
* [ ] fix tests