New classes have been created and classes already existant have been slightly modify in order to simplify the code.
merged