abstract => base