Use forms better, implement item duplication check in model