factor ComponentDocument material out of CustomElements repository