preliminary support for preconditions
Test cases by David Menendez