Refactored and Cleaned up the Crawler

Eliminated References to external APIs for data storage.
Added Listeners for such APIs to plug into
Decoupled concerns somewhat
Including all changes