implemented as list
swapped from list to forward_list