public ArrayList<Field> getFields() {
		if (this.fields == null) {
			this.fields = new ArrayList<Field>();
			try {
				JSONObject json = this.api.makeRequest(this.LinkFields);
				JSONObject fields = json.getJSONObject("Fields");
				@SuppressWarnings("unchecked")
				Iterator<String> keys = fields.keys(); 
				while (keys.hasNext()) {
					Field field = new Field(fields.getJSONObject(keys.next()));
					this.fields.add(field);
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (JSONException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (ParseException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return this.fields;
	}