Now use listener pattern for input