update: first pass at a gl program