Add support for typed case classes
Migrate to sbt from maven