commiting half-done pass at changing apis to be more defensive -- massive test failures - do not merge to trunk