Last modified on 25th June 2022. I never got to finish this, its been sitting in unshared for a while so I decided to share it for now, maybe I might start working on this again. -6/5/2024