start porting sharing backend
add hook utility
more work on porting sharing