revised and updated : 7th January 2016