+fails on large ptcl count. need to make fail-safe