object-level manipulation of IO