code: func SliceGroups(input []string, size int, fn func(group []string)) {
  	// how many to add
  	padding := size - (len(input) % size)
  
  	if padding != size {
  		p := []string{}
  
  		for i := 0; i <= padding; i++ {
  			p = append(p, "")
  		}
  
  		input = append(input, p...)
  	}
  
  	// how many chunks we're making
  	count := len(input) / size
  
  	for i := 0; i < count; i++ {
  		chunk := input[i*size : i*size+size]
  		fn(chunk)
  	}
  }
docs: // SliceGroups takes a slice of words and make new chunks of given size
  // and call the function with the sub slice.  If there are not enough
  // items in the input slice empty strings will pad the last group