consistently use decorator instead of indivudual context managers