General todo: Make general iterators or support std iterators in the data structures (to use them with std algorithms if needed)