final ipynb