adding abstract features