implement open() function
Add trivial copy implementation