~better thread working