#abstract definition