Replacing the unneeded "optimization", with cleaner code implementing a DFS

Previously the Engine's graph was topologically sorted for the path of
processing and then reused this path for the processing of data. Now
removing this ugly and unneeded "optimizatioin", with a cleaner code.