Really unclear on why because this code is almost copy-pasta from the working implementation on v1 of LWJ. need to do some very tedious debugging to figure out what changed