ADT
abstract data type