Publication component

Merge completed Publication component branch back into Master branch, completing implementation of Publication component.