New example, new methods, little less cleanup than last time