add more tests and refactor out a forms partial