add greenwave support, normalize device initialization