docs: @Override
      public DataPoint[] getLastN(int n, int steps, DataPoint.Type type) {
          if (steps < 1) {
              steps = 1;
          }
          if (n < 1) {
              n = 1;
          }
          Calendar now = Calendar.getInstance();
          long currentTimestamp = now.getTimeInMillis();
          now.add(Calendar.SECOND, -(n - 1) * steps);
          now.set(Calendar.MILLISECOND, 0);
          if (steps >= 60) {
              now.set(Calendar.SECOND, 0);
          }
          if (steps >= 60 * 60) {
              now.set(Calendar.MINUTE, 0);
          }
          if (steps >= 24 * 60 * 60) {
              now.set(Calendar.HOUR_OF_DAY, 0);
          }
          long timestampStart = now.getTimeInMillis();
          return getSeries(timestampStart, currentTimestamp + 1, steps, type);
          /* as of 0.5.0: timestampStart is no longer rounded */
          // int blockSize = RESOLUTION_MS * steps;
          // long delta = currentTimestamp % blockSize;
          // long timestampStart = currentTimestamp - delta - (n - 1) * blockSize;
          // return getSeries(timestampStart, currentTimestamp + 1, steps, type);
      }