validation refactory