fix #1; add java client base impl