rename #cache to #preconditions