class Ingredient {

  protected <T> T getProperty(String key) {
    return (T) properties.get(key);
  }

  public  Ingredient(String ingredientType, String domain);
  public  Ingredient(String ingredientType);
  protected  Ingredient(Ingredient other);

}