ported pyppm to pulprog paradigm, properly