improve performance of Position a lot

This is mostly due to switching how the information is stored so we can
do more efficient operations on it.