moved validation into its own featureset
added custom validation