- some corrections, tested