[WIP] Mapped superclass

Refactored classes to allow usage out of the box or ease ability to override classes used
btw, do you still support symfony < 2.3?