finished except for bug fixes and pictures and final copy