Lots of changes, pretty much at functional state now