preheat (read) function complete, may need to tweak ranges a bit still for efficiency