implement not
implement sub and reduce