Adding interfaces

Starting to extract interfaces to objects, instead of depending on the
full, concrete objects