I think the default service name is useless as it always need to be supplied because of the following mandatory arguments.

`definitions` should be protected.