most of syntax check added!