trying to add some new modes. so far, not so stable