Refactoring some of the design.

Turned interfaces into abstract classes.
Added base for Github parser.