tidy up, make VirusScanner a pluggable component instead of hard-wired as a single instance
Improve tests