share functions