some citations added and tweaked