All except copying fns implemented and tested