massive commit, many huge changes