Improve performance by using forward_list.
Have proper tests.