carved out di so that any custom element can use it