modify new logic