most changes ready for 1.0
almost
this is mostly final