moved to scala, java enforced too much boilerplate code