https://ascilite.org/conferences/auckland09/procs/samarawickrema.pdf