lots of changes. stable. have some localhost workarounds