* Refactord out functionality of the retriever into a generalized class
and a specific class.
* Refactored Main to use the callback interface.