https://www.greenflame.org/2004/05/10/thinking-ahead/
Thinking ahead