Used Play combinators and Reads/Writes for JSON serialziation

* Added tests