Moved over to Callable/Runnable implementation and added user agents