@mariash - I've been thinking that its nearly time to refactor out the spot logic into a separate class.  Would you like me to do that as part of this PR, or as a separate PR (I'm nervous of including too many changes in a single PR)