more reader stuff re-implemented