Implement copy only children and refactor methods to use withTransaction