messing with ADTs, etc.