dto works. need to multithread and test more