actually using deferred here