Made 'Open' return a public struct so we can pass it and re-cast it later.