provide better support for scanning repeats
Added in before and after events for each listener so they can do what they need to do on scan completion
fix the offset functionality - always have an offsetUrl if it exists