cleaned, corrected, added and rewrote stuff