BIG! Compacted all functionality into one listener