remove unnecessary generic
remove unnecessary generic
message cooldown
hasStream