In computer programming, what are Abstract Data Types (ADT's) mainly used for?