Implemented duplicate item validation at model layer; also cleaned up some unit tests by breaking big tests into multiple simpler tests and moving to separate and better-named test classes.