SessionEndListener must be part of the client API
first stab at shadow services