Refactor Publisher (needs more work to reduce I/O)