view added, multithreading (need refact)