elaborated on java requirement. reordered list.