#3 basic swing client implementation