First version with `validate` and `storeHostedData`