Identify common code and abstract into classes

I have started to identify code that can be abstracted into classes. It
seems there is more and more code I can move into the general harvester
class which is a good thing. This will make the code a lot more clearer.

Signed-off-by: Konrad Reiche <konrad.reiche@gmail.com>