Major commit: passed most tests. +upgrade tests.