how about creating variable like singleton than `func size, type, version` because after once called, size, type, version never changed in same device everytime, when use `Device.size()`, `Device.getVersion() ...` every time calculated