need a dependency injection component :(