save _names and _dims so they don't have to be called every iteration