* Alternate implementation for device generalization: https://docs.google.com/document/d/1CCJTjUPUPItmDUca1zU8xN9rf85N1BoNPTwJ-nTKN6A/edit?usp=sharing