Yes, both Zutilo and Lyz masters work on both 4.0 and 5.0. I wanted upgrading from 4.0 to 5.0 without them breaking, so that seemed the easiest way. Doing this required making the code fairly ugly, but it is all using if statements with Zotero.version, so it should be easy to go back and pull out 4.0 support later on. Also, it was fairly easy to support both in Zutilo because most of its functionality is menu items or shortcuts that run one Zotero command at the end, so mostly I could just wrap that final asynchronous command in "Zotero.Promise.coroutine(function* () {<code>})()" without too much duplication of code. Lyz uses Zotero.DB to store its data so it had calls that became asynchronous throughout its functions. Since I only maintain Lyz and don't actively develop new features for it, I just added Zotero.version if statements and copied and pasted entire functions inside of Zotero.Promise.coroutine() calls and made changes inside (adding "yield", changing "query" to "queryAsync", and some other minor changes).