Hey, this is pretty close. The author does wake use of the gp API but perhaps someone could comment on what these methods are doing under the hood?