made abstract for Property classes.