Refactoring

Proper class and methods for Surprise
Brought version and argument checking into class (rather than config)
Split the daemon runner script from the class
minor class change
First batch of (very basic unit) tests