actually thread.join is needed in this case