do we need to return `err` here?