Container agnostic Ioc implementation