validator 구현