cache algorithm + performence test. If you run it can take some time :D