learning adt: interface, implementation and a use case