Create multiple go routines explicitly; using anonymous funcs

Rather than creating goroutines using a for loop for the number we
require such as:

        for i := 0; i < 3; i++ {
            go func() {
                // do some stuff
            }()
        }

Instead create an anonymous function that holds the looping logic we
want to duplicate and call the anonymous function directly that we've
assigned to a local variable.

This is easier to understand for people who are reading the code, and
makes the number of goroutines we create a little more explicit.