Seperated validation from execution