fix bug
split struct to channel.go and subscriber.go