reworked asset publisher for simplicity + moved asset publishing entirely into this class instead of 100 different calls from the top level publisher