added shadow stuffs