add Engine class