http://www.datsi.fi.upm.es/~frosal/sources/shc.html