Refactor to use dependency injection[1~#
Introduce EventDispatcher
Refactor to use EventDispatcher; Use LoaderResolver;
Refactor test
Add dependencies
Introduce EventObject
Add FileLocator
Introduce single command application