moved unsubscribe out to its own method