exported logic