exposed defer() method