update form and functionality