Golang Entity component system