re-work the sharing interface