abstraction — technique for arranging complexity of computer systems