adding old ivygen.py as a starting point