onto abstract types