Also improves some terminology for english-speakers. Also substitues [] vector access (which creates empty elements) over at() (which throws if the item is not found).