new logic decide