improved deferred allocation