added client and server support