feel free to re-arrange these arguments as needed, so you can avoid passing null for unused arguments.

metadata, previewURL, ready might be a good order, following the common convention that optional arguments and callbacks go last.