abstracted
api specs