propagate error to the html so user can actually see it
update tests to handle new valid() functionality