llread. needs testing and revision