Best practices for Scala Apis