added some more comments - final version