added logics