Yes, your code is fine. Just have in mind that elaborate method is going to be executed first (since it's registered before the download_remote_data method).
That is certainly valid. You can add as many before_validation calls as you need.
before_validation