implement shared libraries