fix nested Predicate_failed exception
use option type for page fallback functions

instead of default value of 0