Builder pattern for golang