implement lazy and eager polling, adding read after writes