adds abstract class for the API