rename bind and logical_op
add apply_val
misc