Back to using a protocol (LuaLibrary) and it's actually not bad.