use errors annotate instead of fmt.Errorf