some refactor + everything still works! Also, having publishers latch fixes the synchronization issues