Implemented some ADTs.