Support Dependency Injection

WIP atm.