add java style implementation