update for 6.1, improve implementation