Many improvements and additions