		return new Future<T> () {
			Thread t;
			T result;
			ExecutionException e;

			// constructor block
			{
				t = new Thread(new Runnable() {
					@Override
					public void run() {
						try {
							result = task.call();