(minus the globals)