trait AuthRepoComponentImpl extends AuthRepoComponent { val authRepo: AuthRepo = new AuthRepoImpl class AuthRepoImpl extends AuthRepo { def create(auth: Author) = println(s"create $auth") def retrieve(id: AuthId) = { println(s"retrieve $id") new Author } def update(auth: Author) = println(s"update $auth") def delete(auth: Author) = println(s"delete $auth") } }