add functional validator stuffs