Works, but waaaay too slow; and probably a memory hog too