updated/simplified