changed thread functions to be more generic regarding passed data