some modifiations