adapted for 2.0