This is a simple pub-sub module written in TypeScript