add beginnings of function form, better errors on assignments