Cleaned up Listener logic