the worst part is that putting this boilerplate as a base part of the proc probably isn't even advisable. I hate it.