@Override
	public List<AccessPoint> list() {
		Process p;
		ProcessBuilder pb = new ProcessBuilder("/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport", "-s");
		List<AccessPoint> result = new ArrayList<AccessPoint>();
		
		try {
			p = pb.start();
			BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));

			String line;
			while ((line = br.readLine()) != null) {
				Matcher match = OSX_PATTERN.matcher(line);
				if (match.find()) {
					result.add(new AccessPoint(match.group(1).trim(), match.group(2), 100 + Integer.parseInt(match.group(3))));
				}
			}
		} catch(IOException e) {
			throw new RuntimeException(e);
		}
		
		return result;
	}