Many improvements

such changes