works, still slow