working but still slow