Fleshed out Device

Fleshed out device module, still need to add event name switching for
rel devices