Python Puzzles and ADT