for new logic