Refactor to make use of an asynchronous Java task and annotated client and server endpoints and to restructure parts of the program into class files with independent responsibilities.  Enhance documentation and add a screenshot.