abstract and other stuff