update for portability