Author: Jacob Speicher.