added property callback mechanism