new tests, changes to some impl, overall update