adding updates to smo.py