Make read functions return Maybes for handling EOF