added the ability to read from a file