(c) 2016-2017 Richard DeLong.