golang writing idiomatic code