Architecture changed to support multiple device types