incorporate David's feedback