refs 1-3 DONE
refs 4-16 DONE
refs 17,18,19 DONE
refs [20, 27] DONE
ref 28 DONE
ref 29 DONE
ref 30 DONE