splited validtor into gruops for better reading