We should make .start async, can pass in a callback that goes through to listen