Rethinking logic