code for reproducibility of results