initial commit with working multithreading