I find it weird that the catalog item directive communicates with the catalog permalink service via events. Can't the directive just call a function provided by the service?