many changes, much improve
tons of cleanup