attempt threading implementation