some use case of defer in golang
modify for merge
golang channels
three index slices in go1.2