better java8

introduce Optional and randomly sorted stream