validation fully functional