let's pull this out in to a method e.g. OpenOrCreate