Moves notification generation to its own thing