logic --pre