abstracted hardware