Almost working but I think it should be Multithreaded...