add some more things to the algorithm..