revised and updated : 22nd March 2016