added shared and static