This code was probably written before RelDecision existed (or based on such code).
RelDecision
Update: do not review yet, I detected a problem and need to change some more things.