always use reader as opposed to @listener