listener now compiles and listens and stuff