wraps strongly typed functions around angulars default Broadcast SubPub model