============ Contributors ============ Authored by Clint Howarth. With contributions from: - Jonathan Eunice