this is a client codebase. why do we need to listen?