practice with ADTs and python magic methods