Promise based validation engine