abstract and reflection