Abstract device types so we can support cisco, edgeos etc at the same time