added validation and updating capabilities