finished the tutorial, about to re-implement it on my own from scratch