several major modifications