Use OnceListener instead of strange double mapping