working, still incomplete, corrections and updates made.