Somewhat functional read