moved the generation of reference to data to self-contained instruction