consider using `with`