add delayed definition support