First time commit, instroduce UIDevice+HardwareModel