add payload validation