implementation: added tests to GeneralDevice (not passed)