standard preconditions are for public surface