// Getting All Features
  public List<Feature> getAllFeatures() {
    List<Feature> featureList = new ArrayList<Feature>();
    // Select All Query
    String selectQuery = "SELECT  * FROM " + TABLE_FEATURES;

    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);

    // looping through all rows and adding to list
    if (cursor.moveToFirst()) {
      do {
        Feature feature = new Feature();
        feature.setID(Integer.parseInt(cursor.getString(0)));
        feature.setName(cursor.getString(1));
        feature.setL1Norm(Double.parseDouble(cursor.getString(2)));
        feature.setL2Norm(Double.parseDouble(cursor.getString(3)));
        feature.setLinfNorm(Double.parseDouble(cursor.getString(4)));
        feature.setTimestamp(Double.parseDouble(cursor.getString(5)));
        feature.setDiffSecs(Double.parseDouble(cursor.getString(6)));
        feature.setMfccsAsString(cursor.getString(7));
        feature.setPsdAcrossFrequencyBandsAsString(cursor.getString(8));
        // Adding feature to list
        featureList.add(feature);
      } while (cursor.moveToNext());
    }

    db.close(); // Closing database connection
    // return feature list
    return featureList;
  }
  // Adding new feature
  public void addFeature(Feature feature) {

    try {
      SQLiteDatabase db = this.getWritableDatabase();

      ContentValues values = new ContentValues();
      values.put(KEY_LABEL, feature.getName()); // Feature Name
      values.put(KEY_MFCC, feature.getMfccsAsString()); // Feature mfcc
      values.put(KEY_L1NORM, feature.getL1Norm());
      values.put(KEY_L2NORM, feature.getL2Norm());
      values.put(KEY_LINFNORM, feature.getLinfNorm());
      values.put(KEY_TIMESTAMP, feature.getTimestamp());
      values.put(KEY_DIFFSECS, feature.getDiffSecs());
      values.put(KEY_PSDACROSSFREQUENCYBANDS, feature.getPsdAcrossFrequencyBandsAsString());

      // Inserting Row
      db.insert(TABLE_FEATURES, null, values);
      Log.d(LogUtil.TAG, " New feature added");
    } catch (Exception e) {
      Log.d(LogUtil.TAG, " Exception while adding new feature.");
    }
    // db.close(); // Closing database connection, closing outside, need to fix
  }
 // Deleting single feature
 public void deleteFeature(Feature feature) {
   SQLiteDatabase db = this.getWritableDatabase();
   db.delete(TABLE_FEATURES, KEY_ID + " = ?", new String[] {String.valueOf(feature.getID())});
   db.close();
 }