Adding listenOnce with a few tests

For #1