event futures now properly return `this`