update for more portable