works in small chunks, very slow