After work by Andy R. Trinugraha
_