additional work on publish()