Add system base class and Engine class