Change structure to abstract class from interface on components core
Added missing constructor
Added missing constructor