update for external and internal