added validation, changed label, and code clean up