more abstracting