Moved listen to its own method