validation and key done