Author: Shell-Mex and BP.