separated setup and listen functions
updated description