separated interfaces and implementations at the package level
separated server interface and impl