heavily revised modules 1 and 2