private String elapsed() {
		
		final long days = elapsed / MILLISECONDS_PER_DAY;
		final long drest = elapsed % MILLISECONDS_PER_DAY;
		final long hours = drest / MILLISECONDS_PER_HOUR;
		final long hrest = drest % MILLISECONDS_PER_HOUR;
		final long minutes = hrest / MILLISECONDS_PER_MINUTE;
		final long mrest = hrest % MILLISECONDS_PER_MINUTE;
		final long seconds = mrest / MILLISECONDS_PER_SECOND;
		final long milliseconds = mrest % MILLISECONDS_PER_SECOND;
		boolean d = false, h = false, m = false, s = false;
		if (days != 0) { d = h = m = s = true; }
		else if (hours != 0) { h = m = s = true; }
		else if (minutes != 0) { m = s = true; }
		else if (seconds != 0) { s = true; }
		return (
			(d ? days + "d " : "") +
			(h ? hours + "h " : "") +
			(m ? minutes + "m " : "") +
			(s ? seconds + "s " : "") +
			milliseconds + "ms"
		);
	}