refacto, abstract classes are back because of picsou basecode