Improved definitions. no recursive usage of service