http://www.mssanz.org.au/modsim2013/L20/barua.pdf