(not that that's bad or anything. it's just, 1600 lines of code is kinda surprising for one module. at least for me.)