added model binding and error messages