Updated to read from file