Source: https://micsymposium.org/mics_2005/papers/paper83.pdf