abstract class APIObject