Added ability to read from a file