upgraded version of distribute