implement tile shadow