merge bhackett's changes with parallel array alloc stuff