updated with delay for communication