self validation