manual cleanup for df/io