unusable commit, a lot of changes and broken shapes.py
biggest refactoring