refactor logic operations out of Val (based on Bool impl of each type), implement And and Or