Refactor final recursive inject