revised and updated : 27th September 2016