Add pgen module and tests for it (0.1.0)