dependency injection for golang