My original idea was to have syncOSD and syncDialog objects to wrap the dialogs and osds. This would keep them separate from the functional code. Unfortunately, I couldn't find the correct way for the dialog buttons to address functions in their parent class so I gave up and didn't put them in an object. I'm new to lua and lazy, it's not a good combination.