modify abstrcut syntax