Golang Design Patterns - Factory Method