revised and updated : 6th July 2015