basic structure of service