Rewriting of most abstract classes into a new set of classes which is
more intuitive and easier to extend in order to create new Committers.