notifications are (mostly) working. Lots of refactoring. Added mutex to session to prevent multiple requests causing race conditions. More I'm probably not mentioning