with some additional changes