Added DFS search and DFS creator

added the dfs algorithm and a creator for it. Updated tests for this.
Added final to some methods of the superclasses.