split into separate sections with imports for shared functions.
ignoring ipynb checkpoints folder