module injection design