check precondition... at beginning