some work on binary rule dispatch