Support reading from file