a golang ioc framework