use separate deferred lib