Pull validation out into it's own method and add revalidate
Merge with master