working read routine (kinda)