it doesn't work
try to handle spills correctly: not quite there yet
add tests
fix spills