Golang high level abstractions over reflect library