Implement ADT interface