project structure
credit scalaz