Made only one interface seen from outside for test purpose. Rest classes
are private static and except for interface/overriden methods all are
private