Viewercount, more error checking, more generalization on listen()