Source: http://people.cs.vt.edu/mccricks/papers/smnek16-fie.pdf