implemented structural with good syntax check