implemented notification system (closes #21)