adding shadow doms functionality