some more refining and corrections.