abstactions