reordering structure, adding java only library