Added a bunch of code in comments as well as some todos and a migration (I haven't run it yet so it may need to be changed)