refactored the different publish forms into one system