some optimizations for propagating light