Author: Brian macgregor.