don’t resize the DirectArray if it’s sufficiently large
add type parameters