swing client implemented