Make methods of Device virtual

Make methods of Device virtual, so that they can be overloaded by subclasses.