some exercise for golang