validation, hidden field, needs refactoring