adding definition for extern and distribution