refactor to manage more form exceptions