added an Engine class