inline ArgumentAssert calls
heavy refactoring