Super messy stuff. I have no idea what it's used for
Also renames ContactInfoTable to ContactMgr because the contact info table is a separate data structure that's managed by ContactMgr; the manager itself handles more than just the table data