added some methods to the abstract engine