new, properly working threads.c