Adding new functionality to ADTs