java implementations