this is going to block, and it looks like selfContact is called every time the roster is updated? might be a worry/worth a note for future improvement