UPDATE: upgrade functionality to 3.1