Design pattern studies in Go