better light recalc