abstract data types and function pointers 5562409