public synchronized DailyList getDailyList(){

		//1. from memory
		if(dailylist!=null){
			return dailylist;
		}
		
		//2. from internal storage
		dailylist = (DailyList) SDCardStorageManager.getInstance()
				                              .getItem(null, DailyList.ID, DailyList.class);
		if(dailylist!=null){
			return dailylist;
		}
		
		//3. from assets last
		//use default stock list in assets
		//AssetManager manager = context.getAssets();
		try {
			File dataFile = new File("daily_list");
			if(!dataFile.exists()){
				return null;
			}
			
			//InputStream mInput = manager.open("daily_list");
			FileInputStream mInput =  new FileInputStream(dataFile);
			// myData.txt can't be more than 2 gigs.
            int size = mInput.available();
            byte[] buffer = new byte[size];
            mInput.read(buffer);
            mInput.close();
 
            // byte buffer into a string
            String text = new String(buffer);
            Gson gson = new Gson();
            dailylist = gson.fromJson(text, DailyList.class);
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
		
		return dailylist;
	}