add create & open functions