shouldn't we return the `err`?