use unboxed vectors instead of intmaps