updated with shared library