shadow did some modification