refactored listen.c for clarity