id can be empty in constructor, unlike path
bug fix: service or scope determination should be based on path, not id which is not always known at constructor time
bug fix: service or scope determination should be based on path, not id which is not always known at constructor time