Remiving interface and introducing Base abstract
Remiving interface and introducing Base abstract