Rec and abstract refactorings
Changed the names to better reflect that we are using links now.
I also removed the use of a hash since it didn't make any sense.