implemented (but didn't test) new/delete