todo fix deadlock