Add Java implemention