renamed listeners to datawriter because it was a bad name