more wrapping of behavior into reader