Many improvements and new features.

Implements Desktop Notifications.
Closes #117.
Conversion to class/instance is done.
Closes #118.
All the relevant functionality has been separated.
Closes #119.