my own work on PyX, based off PyX-svn