private MealExpense parseMealExpense(Map<String, String> inputData, MealType type, int day) throws ParseException
    {
        String meal = null;
        MealExpense expense = new MealExpense();
        if(type == MealType.BREAKFAST)
        {
            expense.mealType = MealType.BREAKFAST;
            meal = "BREAKFAST";
        }
        else if(type == MealType.DINNER)
        {
            expense.mealType = MealType.DINNER;
            meal = "DINNER";
        }
        else if(type == MealType.LUNCH)
        {
            expense.mealType = MealType.LUNCH;
            meal = "LUNCH";
        }
        else return null;

        if(inputData.containsKey("DAY"+ day +"_"+ meal +"_CITY"))
        {
            expense.city = inputData.get("DAY"+ day +"_"+ meal +"_CITY").toLowerCase();
        }
        else
        {
            //TODO: how do we know if just city element is missing
            return null;
        }
        if(inputData.containsKey("DAY"+ day +"_"+ meal +"_STATE"))
        {
            expense.state = inputData.get("DAY"+ day +"_"+ meal +"_STATE").toLowerCase();
        }
        if(inputData.containsKey("DAY"+ day +"_"+ meal +"_COUNTRY"))
        {
            expense.country = inputData.get("DAY"+ day +"_"+ meal +"_COUNTRY").toLowerCase();

            //need state field if in usa
            if(checkAmerica(expense.country))
            {
                if(inputData.containsKey("DAY"+ day +"_"+ meal +"_STATE"))
                {
                    expense.state = inputData.get("DAY"+ day +"_"+ meal +"_STATE").toLowerCase();
                }
                else
                {
                    throw new ParseException("Missing required field :"+ "DAY"+ day +"_"+ meal +"_STATE");
                }
            }
        }
        else
        {
            throw new ParseException("Missing required field :" + "DAY"+ day +"_"+ meal +"_COUNTRY");
        }
        return expense;
    }