back again to linear memory management
add capacity + access member functions