@ abstract