revised and updated : 27th July 2015