Final Commit

No time for integration test, which I implememt using arquillian
I would normally use in-memory database like h2