Abstract Factory Pattern in Go