cleaned up interface. hooked in client publish feature to backend