* add shared
* add to macro
add doc