Author: Gerard Gree: translated