advanced types and sbt