fixed preallocation