Abstract class + Interface + Autoload (fix the autoload)