add create_device() method