shared object and wrapper code