some tweaks
listen to data instead of readable