Work in progress, very bad sweeping.
Faster sweeping.